终止切换**选择新主库(新主库不一定是最新从库
假如没有一台主库可写可能存在两台可写,**规复所有从库(雷同单独规复主库的进程)-(并发)中继赔偿,防备脑裂,确认是否瓦解,* MHA的整个妨碍(离线)切换进程- 检测主库的状态,将生存后的binlog拷贝到主控机。
应用到新主库,这步称号为read_to_latest,启动复制-新主库执行reset slave*MHA(在线)主库切换进程sudo /usr/bin/masterha_master_switch --master_state=alive --conf=/etc/masterha/app1.cnf --new_master_host=192.168.128.130 --new_master_port=3309 --orig_master_is_new_slave**识别老主库,start,-执行主控机上的master_ip_failover --command=start剧本,好比:msyql处事版本号、是否开启了gtid、是否开启了log-bin、是否只读、复制相干系统变量和状态变量,但必然要解除忽略列表,开启可写模式,那么就会丢失binlog(Read_Master_Log_Pos to the tail)-假如可达,- (并发)的为其他从库生成差此外relaylog和binlog,执行apply_diff_relay_logs --command=generate_and_send,开始复制,那么终止切换,-master_pos_wait-change_master_and_start_slave ,这步称号read_to_tail。
在线的并带有candidate_master标志,-假如瓦解主库地址主机不行达,太短则终止-从所有从库获取切换锁-担保所有从库的slave sql线程已经启动**假如支持gtid自动定位但未启用,* 源码部门要害逻辑**读取设置**查抄设置-查抄apply_diff_relay_log的版本号-毗连所有处事器并读取状态(得知老主库)-查抄参数传进来的瓦解主库是否与老主库地点一致,担保瓦解主库地址主机的ip失活防脑裂,记下偏移,假如呆板都宕机了,--首先期待新主库上已经有的relaylog都重放完毕,拷贝到各个从库,-判定本次切换是否支持gtid,**从头读取所有在线从库的运行状态,找出最老和最新的版本。
生成read_to_latest-(并发)将早生成的read_to_tail部门,不然终止切换-只要有一个在线从库的salve io线程遏制失败,并查抄binlog是否已经遏制前进,**按照最新、最老从库的读头以及某些从库的可忽略失败。
遏制slave sql线程--读取最新复制状态--ssh执行save_binary_logs --command=save, 从自身relaylog中规复exec_to_read--ssh执行apply_diff_relay_logs --command=apply,克制会话级此外log_bin、优雅期待所有sql线程退出、配置为只读、-须要时,- 找出数据最新的从库(也就是read_master_log_pos最大的),新主库上。
那么ssh毗连上最新从库,新主库上,只能为1,那么应该强制apply_diff_relay_log禁用log_bin??**强制封锁-(并发)强制遏制所有从库的slave io线程-探测从主控机到瓦解主库地址主机的ssh可达性-执行master_ip_failover_script。
-遍历每台从库,-识别应该忽略的从库,跳过-ssh逐一毗连最新从库,再加上未读取的binlog,-查抄新老主库的复制过滤法则是否一致;-Binlog_Do_DB、Binlog_Ignore_DB、Replicate_Do_Table等,-按照从库的指历来找出存在哪些主库(支持3层复制布局(主-从-从的从))。
**拒绝更新,不然终止本次切换进程,那就终止本次切换,binlog遏制前进后。
参照在线切换中的描写)**规复新主库-若果新主库的读头落伍于最新从库,-假如没有用来赔偿的基准从库。
拷贝到新主库-假如不是最新从库可能有生存过read_to_tail,-新主库上,-验证当前真正的主库是谁?-统计在线处事器中的非从库(not_slave)标志,从最新从库的relaylog中提取新主库读头直到最新从库读头处的二进制日志,生存老主库的binlog,是否都指向老主库-查抄是否有些不应忽略失败的从库已经离线-查抄上次切换是否失败-查抄上次切换产生时间与本次切换的时距离断,那么就终止切换**探测出复制延迟最小的从库、复制延迟最大的从库**按照最新从库的slave io线程的读头。
-选择新主库;- 识别优先从库。
-挪用master_ip_online_change剧本,$latest_slave-{Master_Log_File}:$latest_slave-{Read_Master_Log_Pos}-将主控机生存好的最新从库读头到主库binlog尾部的日志(read_to_tail),将前面生成的3部门赔偿日志全部导入,- 从最新从库上生成差此外relaylog。
不在的话就终止切换-查抄是否真的毗连不上mysql处事-查抄所有在线从库,-选择优先级依次为:优先列表、最新从库列表、所有从库列表,在老主库,-查抄所有在线从库上是否有复制账户并有相应的REPLICATION SLAVE权限;-须要时在老主库长举办flush tables操纵;-从老主库获取监督锁;-从所有从库获取切换锁;-查抄所有在线从库的复制康健状况;-读取当前的复制状态;-判定是否有问题(IO、SQL线程是否在运行,应用到各个从库,执行master_pos_wait,应用差别日志,那么就应用差别日志,配置为只读;老主库上,配置为只读,**新主库从老主库应用完所有的事件日志。
推送到主控机,-挪用master_ip_online_change剧本,不然终止切换-查抄老主库是否在离线主机列表中。
-识别数据最新的从库;-较量master_log_file:read_master_log_pos,** (并发)从库应用完老主库所有的事件日志并指向新主库,- 从库指向新主库的偏移处,-封锁新主库的只读。
看是否realylog包括了最老从库的读头,记下偏移位置,然跋文下新主库binlog的file:pos,锁住所有表,ssh毗连上去。
指向新主库,然后执行save_binary_logs --command=save,-较量所有从库的mysql处事版本,生存binlog,带有no_master标志、可能未开启log_bin、可能mysql处事版本不是最老、与最新从库对比数据延迟较量大,终止切换**选择新主库(新主库不必然是最新从库,激活新主库的ip,确定下新主库。
数据延迟多久)**识别新主库,- 确认处事瓦解,并可以强制封锁主库制止脑裂,真正的主库必需是在线而且可写。
看mysql处事是否在运行,获取所有能获取的信息,来抉择哪个从库作为relaylog、binlog赔偿的基准-假如所有从库的读头一致,-读取设置MHA设置文件;-毗连并读取所有的数据库处事状态;-(并发)毗连所有从库,执行apply_diff_relay_logs --command=find,-统计处事器信息:离线处事器、在线处事器、在线从库、失败从库等,stop子呼吁,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/mysql/13083.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
这些文件如果在configure命
时间:2021-01-22
-
说明在数据库崩溃时内存
时间:2021-01-22
-
破解极验(geetest)验证码
时间:2021-01-22
-
今天这种代码阅读方法仍
时间:2021-01-22
-
count(*) as cnt from sakila.fi
时间:2021-01-22
-
可能你注意到系统提示的
时间:2021-01-22
-
搭建环境与运行
时间:2021-01-22
-
MySQL主从复制的常见拓扑
时间:2021-01-22
热门文章
-
MySQL的CRUD操作+使用视图
时间:2021-01-10
-
NodeJs(2)和MySQL(windows下)
时间:2021-01-05
-
详解MySQL开启远程连接权限
时间:2021-01-05
-
MySQL查询优化:LIMIT 1避免全表扫描提高查询
时间:2020-12-07
-
MySQL数据检索+查询+全文本搜索
时间:2021-01-10
-
mysql安装图解 mysql图文安装教程(详细说明
时间:2020-12-23
-
对于innodb存储引擎的表只能指定数据路径
时间:2021-01-20
-
MySQL8新特性:降序索引详解
时间:2020-12-23
-
可以通过动作标识来引用 DROP TABLE IF EXI
时间:2021-01-20
-
MySQL死锁套路之唯一索引下批量插入顺序
时间:2020-12-28
